package com.yfp.machine.service;

import com.yfp.machine.domain.MachineRoad;
import com.yfp.machine.domain.dto.MachineComboDetailsDto;
import com.yfp.machine.domain.dto.RoadInfoDto;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

import java.util.List;

/**
 * (MachineRoad)表服务接口
 *
 * 
 * @since 2023-12-14 14:32:01
 */
public interface MachineRoadService {

    /**
     * 通过ID查询单条数据
     *
     * @param machineId 主键
     * @return 实例对象
     */
    MachineRoad queryById(String machineId);

    /**
     * 分页查询
     *
     * @param machineRoad 筛选条件
     * @param pageRequest 分页对象
     * @return 查询结果
     */
    Page<MachineRoad> queryByPage(MachineRoad machineRoad, PageRequest pageRequest);

    /**
     * 新增数据
     *
     * @param machineRoad 实例对象
     * @return 实例对象
     */
    MachineRoad insert(MachineRoad machineRoad);

    /**
     * 修改数据
     *
     * @param machineRoad 实例对象
     * @return 实例对象
     */
    MachineRoad update(MachineRoad machineRoad);

    /**
     * 通过主键删除数据
     *
     * @param machineId 主键
     * @return 是否成功
     */
    boolean deleteById(String machineId);

    /**
     * 获取套餐详细信息
     *
     * @param machineId 机器id
     * @return {@link MachineComboDetailsDto}
     */
    MachineComboDetailsDto getComboDetails(String machineId);

    /**
     * 获取货道列表
     *
     * @param machineId 机器id
     * @return {@link List}<{@link RoadInfoDto}>
     */
    List<RoadInfoDto> getRoadList(String machineId);

    /**
     * 库存修改
     * * @return boolean
     */
    boolean inventoryModify(List<MachineRoad> machineRoads);

}
